using System;
using System.Collections.Generic;
using System.Reflection;

namespace AltNetHispano.Vale
{
	public interface IValidator
	{
		void Register<T>(Func<T, string> assert);
		void Register<T>(Func<T, string> assert, MemberInfo member);

		IEnumerable<string> GetInvalidMessages(object entity);
		IEnumerable<string> GetInvalidMessages(object entity, MemberInfo member);


		bool IsValid(object entity);
	}
}